package leetCode.hw.string;

import java.util.HashMap;
import java.util.Map;

public class HJ21Solution implements HJ21{

    static Map<Character,Integer> map = new HashMap<>();
    static {
        char a = 'a';
        char A = 'A';
        int sub = 'A'-'a';
        //映射小写字母
        for(int i=0;i<18;i++) {
            map.put((char)(a+i),(i/3+2));
        }
        map.put('s',7);
        for(int i=1;i<4;i++){
            map.put((char)('s'+i),8);
        }
        for(int i=0;i<4;i++){
            map.put((char)('w'+i),9);
        }
        //映射大写字母
        for(int i=0;i<26;i++){
            map.put((char)(A+i),(A+i-sub+1));
        }
        map.put('Z',(int)'a');
    }

    @Override
    public String convertPassword(String password) {
        StringBuilder result = new StringBuilder();
        for(char n:password.toCharArray()){
            if(map.containsKey(n)){
                int r = map.get(n);
                if(r>9){
                    result.append((char)r);
                }
                else result.append(r);
            }
            else result.append(n);
        }
        return result.toString();
    }
}
